var ChonMua = {
    ThemMatHang: function(data){
        //console.log(data);
        var size = data.length;

        if (size > 0){
            QuanLyBanHangStatic.showMessageBox(true, 1);

            var container = $('#container');
            var defaultRow = container.parent().find('.default-row');
            for (var i = 0; i < size; i++){
                var check = container.find('#rows-'+ data[i].id);
                if (check.length == 0){
                    var row = defaultRow.clone();
                    row.removeClass('default-row').addClass('row');
                    row.attr('data-text', data[i].id);
                    row.attr('id', 'rows-' + data[i].id);
                    row.find('.ten').html(data[i].ten);
                    row.find('.hangton').html(data[i].soluong);

                    row.find('.soluong-value').val(1).autoNumeric(
                        'init', {aSep: '', mDec: '2', vMax: '999999999999999'}
                    );

                    row.find('.donvitinh').html(data[i].donvitinh);

                    row.find('.giaban-value').val(QuanLyBanHangStatic.numberWithCommas(data[i].giaban)).autoNumeric(
                        'init', {aSep: ',', mDec: '0', vMax: '999999999999999'}
                    );

                    row.find('.giagoc-value').val(data[i].giagoc);

                    row.find('.thanhtien-value').val(QuanLyBanHangStatic.numberWithCommas(data[i].giaban)).autoNumeric(
                        'init', {aSep: ',', mDec: '0', vMax: '999999999999999'}
                    );

                    row.appendTo(container).show();
                } else{
                    check.effect('highlight', {color: '#ffd5ad'}, 600)
                        .effect('highlight', {color: '#ffd5ad'}, 600);
                }
            }

            this.CheckSoThuTu();
            this.CheckTongCong();
        } else{
            QuanLyBanHangStatic.changeMessage('Thông báo', 'Không tìm thấy thông tin!<br/>Vui lòng kiểm tra <b>Giá bán</b> hoặc <b>Thông tin</b> mặt hàng');
            QuanLyBanHangStatic.showMessageBox(false);
        }

    },
    NhapMaNhanh: function(txt, e){
        if (e.keyCode != 13)
            return;

        txt = $(txt);
        if (txt.val() == ''){
            txt.effect('highlight', {color: '#ffd5ad'}, 600).effect('highlight', {color: '#ffd5ad'}, 600);
            return;
        }
        txt.prop('disabled', true);

        QuanLyBanHangStatic.changeMessage('Thông báo', 'Đang tải thông tin mặt hàng...', 'fa-spin fa-refresh');
        QuanLyBanHangStatic.showMessageBox(false);

        $.get(QuanLyBanHangStatic.baseURL + 'MatHang/ThongTinMatHangTheoMa/' + txt.val(), function (data) {
            if (data){
                data = JSON.parse(data);
                console.log(data);
                var size = data.length;
                if (size > 0){
                    for (var i = 0; i < size; i++){
                        ChonMua.ThemMatHang(data);
                    }
                    QuanLyBanHangStatic.showMessageBox(true, 1);
                }  else {
                    QuanLyBanHangStatic.changeMessage('Thông báo', 'Không tìm thấy mặt hàng có mã: <b>' + txt.val() + '</b>');
                    QuanLyBanHangStatic.showMessageBox(true, 3000);
                }
                txt.prop('disabled', false).val('');
                txt.focus();
            } else{
                QuanLyBanHangStatic.changeMessage('Thông báo', 'Đã có lỗi xảy ra, vui lòng thử lại!');
                QuanLyBanHangStatic.showMessageBox(true, 3000);
            }
        });
    },
    XoaMatHang: function(obj){
        obj = $(obj);
        obj.parent().remove();
        this.CheckSoThuTu();
        this.CheckTongCong();
    },
    ThayDoiThanhTien: function(obj){
        this.CheckTongCong();
    },
    DoiSoLuong: function(obj){
        obj = $(obj);
        if (obj.val() == ''){
            QuanLyBanHangStatic.changeMessage('Thông báo', 'Vui lòng không để trống số lượng');
            QuanLyBanHangStatic.showMessageBox(true, 3000);
            obj.effect('highlight', {color: '#ffd5ad'}, 600)
                .effect('highlight', {color: '#ffd5ad'}, 600);
            obj.focus();
            return;
        }

        var soluong = obj.val();

        var tonkho = parseFloat(obj.parent().parent().find('.hangton').html());

        if (soluong > tonkho){
            QuanLyBanHangStatic.changeMessage('Thông báo', 'Không đủ hàng trong kho để bán');
            QuanLyBanHangStatic.showMessageBox(true, 3000);
        }

        var giaban = obj.parent().parent().find('.giaban-value').autoNumeric('get');

        obj.parent().parent().find('.thanhtien-value').val(QuanLyBanHangStatic.numberWithCommas(giaban * soluong));

        this.CheckTongCong();
    },
    DoiGiaBan: function(obj){
        obj = $(obj);
        if (obj.val() == ''){
            QuanLyBanHangStatic.changeMessage('Thông báo', 'Vui lòng không để trống giá bán');
            QuanLyBanHangStatic.showMessageBox(true, 3000);
            obj.effect('highlight', {color: '#ffd5ad'}, 600)
                .effect('highlight', {color: '#ffd5ad'}, 600);
            obj.focus();
            return;
        }

        var giaban = obj.autoNumeric('get');

        var soluong = obj.parent().parent().find('.soluong-value').val();

        obj.parent().parent().find('.thanhtien-value').val(QuanLyBanHangStatic.numberWithCommas(giaban * soluong));

        this.CheckTongCong();
    },
    CheckSoThuTu: function(){
        var container = $('#container');
        container.find('.row').each(function(index){
            $(this).find('.stt').html(index + 1);
        });
    },
    CheckTongCong: function(){
        var container = $('#container');
        var total = container.parent().find('.total-value');

        var value = 0;
        container.find('.thanhtien-value').each(function(index){
            value += parseFloat($(this).autoNumeric('get'));
        });

        $('#button-submit').prop('disabled', (value == 0));


        total.html(QuanLyBanHangStatic.numberWithCommas(value) + ' đ');
    },
    TaoHoaDon: function(button){
        var container = $('#container');
        var rows = container.find('.row');
        if (rows.length <= 0){
            QuanLyBanHangStatic.changeMessage('Thông báo', 'Vui lòng chọn ít nhất 1 mặt hàng để bán');
            QuanLyBanHangStatic.showMessageBox(true, 3000);
            return;
        }

        button = $(button);
        button.prop('disabled', true);
        button.find('.fa-loading').show();

        var trigia = 0;
        var giagoc = 0;

        var listMatHang = new Array();
        var listGiaGoc = new Array();
        var listGiaBan = new Array();
        var listSoLuong = new Array();
        var listThanhTien = new Array();


        rows.each(function(index){
            var obj = $(this);
            listMatHang.push(obj.attr('data-text'));


            listGiaBan.push(obj.find('.giaban-value').autoNumeric('get'));

            var soluongTmp = obj.find('.soluong-value').val();
            listSoLuong.push(soluongTmp);

            var tmp = obj.find('.giagoc-value').val();
            listGiaGoc.push(tmp);
            giagoc += parseFloat(tmp) * parseFloat(soluongTmp);


            tmp = obj.find('.thanhtien-value').autoNumeric('get');
            listThanhTien.push(tmp);
            trigia += parseFloat(tmp);

        });

        var postData = {
            trigia: trigia,
            giagoc: giagoc,
            listMatHang: listMatHang,
            listGiaGoc: listGiaGoc,
            listGiaBan: listGiaBan,
            listSoLuong: listSoLuong,
            listThanhTien: listThanhTien
        };

        $.post(QuanLyBanHangStatic.baseURL + 'HoaDon/TaoHoaDon', postData, function(data){
            console.log(data);
            window.location.href = QuanLyBanHangStatic.baseURL + 'HoaDon/ThanhToan/' + data;
        });
    }
};


$(function(){
    $('#tree')
        .jstree({
            'core' : {
                'data' : {
                    'url' : QuanLyBanHangStatic.baseURL + 'MathangTree?operation=get_node',
                    'data' : function (node) {
                        return { 'id' : node.id };
                    }
                },
                'check_callback' : true,
                'themes' : {
                    'responsive' : false
                },
                'multiple' : false
            },
            "types": {
                "drive": {
                    "icon": "fa tree-drive",
                    valid_children: ["folder"]
                },
                "default": {
                    "icon": "fa tree-file",
                    valid_children: "none"
                },
                "folder": {
                    "icon": "fa tree-folder",
                    valid_children: ["folder", "default"]
                }
            },
            'plugins' : [/*'state', */'types', 'sort']
        })
        .on('changed.jstree', function (e, data) {
            if (data.event != undefined){
                if (data.node.type == 'default'){

                    QuanLyBanHangStatic.changeMessage('Thông báo', 'Đang tải thông tin mặt hàng...', 'fa-spin fa-refresh');
                    QuanLyBanHangStatic.showMessageBox(false);

                    $.get(QuanLyBanHangStatic.baseURL + 'MatHang/ThongTinMatHang/' + data.node.id, function (data) {
                        if (data){
                            data = JSON.parse(data);

                            ChonMua.ThemMatHang(data);
                            QuanLyBanHangStatic.showMessageBox(true, 1);

                        } else{
                            QuanLyBanHangStatic.changeMessage('Thông báo', 'Đã có lỗi xảy ra, vui lòng thử lại!');
                            QuanLyBanHangStatic.showMessageBox(true, 3000);
                        }
                    });
                } else if (data.node.type == 'folder'){

                } else{

                }
            }

        });

});